404. 左叶子之和
404. 左叶子之和
Similar Question
leading to the advanced question
Solution Tips
方案一: BFS
var sumOfLeftLeaves = function(root) {
if (root === null) return 0;
let sum = 0;
const queue = [{ node: root, side: 'right' }];
while (queue.length !== 0) {
const { node, side } = queue.pop();
if (node.left === null && node.right === null && side === 'left') {
sum += node.val;
}
if (node.left !== null) {
queue.push({
node: node.left,
side: 'left'
});
}
if (node.right !== null) {
queue.push({
node: node.right,
side: 'right'
});
}
}
return sum;
};
方案二: DFS
var sumOfLeftLeaves = function(root) {
if (root === null) return 0;
return (
sumOfLeftLeaves(root.left)
+ sumOfLeftLeaves(root.right)
+ (root.left !== null && root.left.left === null && root.left.right === null ? root.left.val : 0)
);
};